import Vue from 'vue'
const uploadImage = require('@/util/oss/upload.js')

// 便捷toast提示
Vue.prototype.$toast = (title, icon) => { uni.showToast({ title, icon: icon || 'none' }) }

// 便捷路由跳转(保留当前页面)
Vue.prototype.$navigateTo = url => { uni.navigateTo({ url }) }

// 便捷路由跳转(关闭当前页面)
Vue.prototype.$redirectTo = url => { uni.redirectTo({ url }) }

// 跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面 
Vue.prototype.$switchTab = url => { uni.switchTab({ url }) }

// 关闭当前页面，返回上一页面或多级页面 
Vue.prototype.$navigateBack = delta => { uni.navigateBack({ delta: delta || 1 }) }

// 获取定位信息
export function getLocation() {
	return new Promise((resolve, reject) => {
		uni.getLocation({
			// type: 'gcj02',
			// type: 'wgs84', // 默认值
			geocode: true,
			// accuracy: 'best', // 默认为high:精度100m best:精度20m
			isHighAccuracy: true,
			success: (res) => {
				resolve(res)
			},
			fail: (err) => {
				reject(err)
			},
			complete: (res) => {}
		})
	})
}

export function checkUpdate() {
	const updateManager = uni.getUpdateManager()
	updateManager.onCheckForUpdate((res) => {
		// 请求完新版本信息的回调
		console.log(`接单端新版本 = ${res.hasUpdate}`)
		if (res.hasUpdate) {
			updateManager.onUpdateReady((res) => {
				uni.showModal({
					title: '更新提示',
					content: '检测到新版本，需要重启才能更新，是否立即重启？',
					success: (res) => {
						if (res.confirm) {
							// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
							updateManager.applyUpdate()
						}
					}
				})
			})

			updateManager.onUpdateFailed((res) => {
				// 新的版本下载失败
			})
		}
	})
}

// 选择并上传图片
export function chooseAndUploadImg() {
	return new Promise((resolve, reject) => {
		uni.chooseImage({
			count: 1,
			sizeType: ['compressed'],
			// sourceType: [type],
			success(res) {
				console.log('选择的图片路径 = ', res);
				uni.showLoading({ title: '图片上传中...', mask: true })
				uploadImage(res.tempFilePaths[0], 'zsycsb/',
					(res) => {
						uni.hideLoading()
						uni.showToast({ title: '上传成功', icon: 'none' })
						// console.log("上传成功结果 = ", res)
						resolve(res)
					},
					(err) => {
						uni.hideLoading()
						uni.showToast({ title: '上传失败', icon: 'none' })
						reject(err)
					}
				)
			},

			fail(err) {
				uni.showToast({ title: '未获取到图片', icon: 'none' })
				reject(err)
			}

		})
	})
}

// 选择并上传视频
export function chooseAndUploadVideo() {
	return new Promise((resolve, reject) => {
		uni.chooseVideo({
			extension: ['mp4'],
			success: (res) => {
				console.log('选择的视频路径 = ', res);
				uni.showLoading({ title: '视频上传中...', mask: true })
				uploadImage(res.tempFilePath, 'zsycsb/',
					(res) => {
						uni.hideLoading()
						uni.showToast({ title: '上传成功', icon: 'none' })
						// console.log("上传成功结果 = ", res)
						resolve(res)
					},
					(err) => {
						uni.hideLoading()
						uni.showToast({ title: '上传失败', icon: 'none' })
						reject(err)
					},
					true
				)
			},

			fail(err) {
				uni.showToast({ title: '未获取到视频', icon: 'none' })
				reject(err)
			}

		})
	})
}